package fontTest.karcio;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.font.FontRenderContext;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;

import javax.swing.JComponent;

public class FontComponent extends JComponent {

	/**
	 * 
	 */
	private static final long serialVersionUID = -2198741681959257457L;

	public void paintComponent(Graphics g) {

		Graphics2D g2 = (Graphics2D) g;

		String message = "Witaj Swiecie !";

		Font f = new Font("Serif", Font.BOLD, 36);
		g2.setFont(f);

		FontRenderContext context = g2.getFontRenderContext();
		Rectangle2D bounds = f.getStringBounds(message, context);

		double x = (getWidth() - bounds.getWidth()) / 2;
		double y = (getWidth() - bounds.getWidth()) / 2;

		double ascent = -bounds.getY();
		double baseY = y + ascent;

		g2.drawString(message, (int) x, (int) baseY);
		g2.setPaint(Color.LIGHT_GRAY);

		g2.draw(new Line2D.Double(x, baseY, x + bounds.getWidth(), baseY));

		Rectangle2D rectangle = new Rectangle2D.Double(x, y, bounds.getWidth(),
				bounds.getHeight());
		g2.draw(rectangle);
	}
}
